package com.xmindguoguo.boot.common.constant.factroy;

import java.util.List;
import java.util.Set;

/**
 * 常量生产工厂的接口
 *
 * @author fengshuonan
 * @date 2017-06-14 21:12
 */
public interface IConstantFactory {
//
    /**
     * 根据用户id获取用户名称
     *
     * @author stylefeng
     * @Date 2017/5/9 23:41
     */
    String getUserNameById(Long userId);

//    /**
//     * 根据用户id获取用户账号
//     *
//     * @author stylefeng
//     * @date 2017年5月16日21:55:371
//     */
//    String getUserAccountById(Long userId);
//
//    /**
//     * 通过角色ids获取角色名称
//     */
//    String getRoleName(String roleIds);
//
    /**
     * 通过角色id获取角色名称
     */
    String getSingleRoleName(Long roleId);

    /**
     * 通过角色id获取角色英文名称
     */
    String getSingleRoleTip(Long roleId);

    /**
     * 获取部门名称
     */
    String getDeptName(Long deptId);
//
//    /**
//     * 获取菜单的名称们(多个)
//     */
//    String getMenuNames(String menuIds);
//
//    /**
//     * 获取菜单名称
//     */
//    String getMenuName(Long menuId);
//
//    /**
//     * 获取菜单名称通过编号
//     */
//    String getMenuNameByCode(String code);
//
//    /**
//     * 获取字典名称
//     */
//    String getDictName(Long dictId);
//
//    /**
//     * 获取通知标题
//     */
//    String getNoticeTitle(Long dictId);
//
//    /**
//     * 根据字典名称和字典中的值获取对应的名称
//     */
//    String getDictsByName(String name, Long val);
//
//    /**
//     * 获取性别名称
//     */
//    String getSexName(Long sex);
//
//    /**
//     * 获取用户登录状态
//     */
//    String getStatusName(Long status);
//
//    /**
//     * 获取菜单状态
//     */
//    String getMenuStatusName(Long status);
//
//    /**
//     * 查询字典
//     */
//    List<Dict> findInDict(Long id);
//
//    /**
//     * 获取被缓存的对象(用户删除业务)
//     */
//    String getCacheObject(String para);

    /**
     * 获取子部门id
     */
    List<Long> getSubDeptId(Long deptid);

//
//    /**
//     * 获取所有父部门id
//     */
//    List<Long> getParentDeptIds(Long deptid);
    /**
     * 需要登录 不需要权限的集合
     * 
     * @Title findLoginNoPermissionSet
     * @author 于国帅
     * @date 2019年1月10日 上午11:35:28
     * @return Set<String>
     */
    Set<String> findLoginNoPermissionSet();

    /**
     * 需要登录 需要权限的集合
     * 
     * @Title findLoginNoPermissionSet
     * @author 于国帅
     * @date 2019年1月10日 上午11:35:28
     * @return Set<String>
     */
    Set<String> findLoginAndPermissionSet();

    /**
     * 不需要权限的
     * 
     * @Title findNoLoginAndPermissionSet
     * @author 于国帅
     * @date 2019年3月4日 下午2:09:19
     * @return Set<String>
     */
    Set<String> findNoLoginAndPermissionSet();
}
